package cn.iocoder.yudao.module.ym.controller.admin.site.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.annotations.ExcelColumnSelect;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.iocoder.yudao.module.infra.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
@Schema(description = "管理后台 - 电站详情 导入")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false)
public class SiteImportVO {

    @ExcelProperty("区域")
    private String areaName;

    @ExcelProperty("坐标集合")
    private String coordinates;

    @ExcelProperty("中心经纬度")
    private String latitudeLongitude;

    @ExcelProperty("经度")
    private String lon;

    @ExcelProperty("纬度")
    private String lat;

    @ExcelProperty("电站名称")
    private String siteName;

    @ExcelProperty("电站地址")
    private String location;

    @ExcelProperty(value = "运营平台", converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_OPERATION_PLATFORM)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_OPERATION_PLATFORM)
    private Integer operationPlatform;

    @ExcelProperty(value = "设备品牌", converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_DEVICE_BRAND)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_DEVICE_BRAND)
    private Integer deviceBrand;

    @ExcelProperty(value = "设备类型", converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_DEVICE_TYPE)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_DEVICE_TYPE)
    private Integer deviceType;

    @ExcelProperty("快充终端数")
    private String fastNum;

    @ExcelProperty("慢充终端数")
    private String slowNum;

    @ExcelProperty("管理员名字")
    private String adminName;

    @ExcelProperty("管理员电话")
    private String adminPhone;

    @ExcelProperty(value = "电站状态", converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_SITE_STATUS)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_SITE_STATUS)
    private Integer siteStatus;

    @ExcelProperty("配套设施,多个用'|'隔开")
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_SUPPORTING_FACILITY)
    private String supportingFacilities;

    @ExcelProperty(value = "运营类型", converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_OPERATION_TYPE)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_OPERATION_TYPE)
    private Integer operationType;

    @ExcelProperty("电费")
    private String electricityBill;

    @ExcelProperty("服务费")
    private String serviceFee;

    @ExcelProperty("上线时间")
    private LocalDateTime onlineDate;

    @ExcelProperty("账面投资额")
    private String investmentAmt;

    @ExcelProperty("总功率")
    private String totalPower;

    @ExcelProperty("分成/租金")
    private String shareRent;

    @ExcelProperty("到期时间")
    private LocalDateTime expirationDate;

    @ExcelProperty("客户名称")
    private String clientName;

    @ExcelProperty("负责人")
    private String leaderName;

    @ExcelProperty("负责人电话")
    private String leaderPhone;

    @ExcelProperty(value = "商圈类别",converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_BUSINESS_CATEGORY)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_BUSINESS_CATEGORY)
    private Integer businessCategory;

    @ExcelProperty(value = "电站类型", converter = DictConvert.class)
    @DictFormat(value = DictTypeConstants.YM_SITE_TYPE)
    @ExcelColumnSelect(dictType = DictTypeConstants.YM_SITE_TYPE)
    private Integer siteType;

    @ExcelIgnore
    private Long areaId;

    @ExcelIgnore
    private LocalDateTime businessTime;
}
